import javax.swing.JLabel;
import javax.swing.JSlider;
import javax.swing.JTable;
import javax.swing.JTextField;

public class Oficina extends Thread {
	Histograma histograma;
	Cola cola;
	JLabel fondo;
	HiloCantidad hiloCantTomador[];
	HiloCantidad hiloCantCaja[];
	JTable jt_tabla_reportes;
	EntradaClientes entrada_clientes;
	//JTextField jtf_velocidad_simulacion;
	private JSlider slider;
	
	public Oficina(JLabel f, Histograma histo,EntradaClientes entrada_clientes, JTable jt_tabla_reportes,JSlider slider) {
		fondo = f;
		histograma = histo;
		this.entrada_clientes=entrada_clientes;
		this.jt_tabla_reportes = jt_tabla_reportes;
		//this.jtf_velocidad_simulacion=jtf_velocidad_simulacion;
		this.slider=slider;
		cola = new Cola(fondo, histograma);
	}

	public void encontrarPosicion(int d, int hI) {
		int dia = d;
		int horaIni = hI;
		int cantCliInicio[] = histograma.getCantidadClientesInicio(dia, horaIni);
		int pXE = 513;
		int pXC = 513;

		hiloCantTomador = new HiloCantidad[cantCliInicio[0]];
		hiloCantCaja = new HiloCantidad[cantCliInicio[1]];

		histograma.EstadoPuestoInicial(0, cantCliInicio[0]);
		histograma.EstadoPuestoInicial(1, cantCliInicio[1]);

		for (int i = 0; i < cantCliInicio[0]; i++) {
			hiloCantTomador[i] = new HiloCantidad(fondo, histograma, i, 'e',entrada_clientes,jt_tabla_reportes,slider);
			hiloCantTomador[i].cliente.cambiarParado();
			hiloCantTomador[i].cliente.setLocation(pXE, 430);
			fondo.add(hiloCantTomador[i].cliente);
			pXE -= 25;
		}
		for (int i = 0; i < cantCliInicio[1]; i++) {
			hiloCantCaja[i] = new HiloCantidad(fondo, histograma, i, 'c', entrada_clientes, jt_tabla_reportes,slider);
			hiloCantCaja[i].cliente.cambiarParado();
			hiloCantCaja[i].cliente.setLocation(pXC, 80);
			fondo.add(hiloCantCaja[i].cliente);
			pXC -= 25;
		}

		this.start();
	}

	public void run() {

		for (int i = 0; i < hiloCantTomador.length; i++) {
			hiloCantTomador[i].start();
			try {
				Thread.sleep(1000);
			} catch (Exception e) {
			}
		}
		for (int i = 0; i < hiloCantCaja.length; i++) {
			hiloCantCaja[i].start();
			try {
				Thread.sleep(1000);
			} catch (Exception e) {
			}

		}
	}
}
